Estimate degradation metrics on re-recorded signals from playback experiment at Bosque de Tlalpan, Mexico City, 2019
Explore graphically variation in degradation parameters related to abiotic factors
degrad_df <- read.csv("./data/processed/barulho_degradation_metrics.csv",
stringsAsFactors = FALSE)
degrad_df$signal.to.noise.ratio <- NA
# Signal-to-noise ratio
degrad_df$signal.to.noise.ratio[est.alg.sim.all$end - est.alg.sim.all$start >
0.15] <- signal_to_noise_ratio(est.alg.sim.all[est.alg.sim.all$end -
est.alg.sim.all$start > 0.15, ], mar = 0.025, pb = TRUE, cores = paral,
type = 1)$signal.to.noise.ratio
degrad_df$signal.to.noise.ratio[est.alg.sim.all$end - est.alg.sim.all$start <
0.15] <- signal_to_noise_ratio(est.alg.sim.all[est.alg.sim.all$end -
est.alg.sim.all$start < 0.15, ], mar = 0.025/2, pb = TRUE, cores = paral,
type = 1)$signal.to.noise.ratiopca_degrad_params <- c("blur.ratio", "spectrum.blur.ratio", "envelope.correlation",
"excess.attenuation", "signal.to.noise.ratio", "cross.correlation",
"tail.to.signal.ratio", "tail.to.noise.ratio", "spectrum.correlation")
comp.cases <- complete.cases(degrad_df[, names(degrad_df) %in% pca_degrad_params])
pca <- prcomp(degrad_df[comp.cases, names(degrad_df) %in% pca_degrad_params],
scale. = TRUE)
# add to data
degrad_df$PC1 <- NA
degrad_df$PC1[comp.cases] <- pca$x[, 1]
# plot rotation values by PC
pca_rot <- as.data.frame(pca$rotation[, 1:4])
pca_rot_stck <- stack(pca_rot)
pca_rot_stck$variable <- rownames(pca_rot)
pca_rot_stck$Sign <- ifelse(pca_rot_stck$values > 0, "Positive", "Negative")
pca_rot_stck$rotation <- abs(pca_rot_stck$values)
ggplot(pca_rot_stck, aes(x = variable, y = rotation, fill = Sign)) +
geom_col() + coord_flip() + scale_fill_viridis_d(alpha = 0.7,
begin = 0.3, end = 0.8) + facet_wrap(~ind)cormat <- cor(degrad_df[, degrad_params], use = "pairwise.complete.obs")
rownames(cormat) <- colnames(cormat) <- names(degrad_params)
cols_corr <- colorRampPalette(c("white", "white", viridis(4, direction = -1)))(10)
cp <- corrplot.mixed(cormat, tl.cex = 0.7, upper.col = cols_corr,
lower.col = cols_corr, order = "hclust", lower = "number", upper = "ellipse",
tl.col = "black")# sort parameters as in clusters for cross correlation
degrad_params <- degrad_params[match(rownames(cp$corr), names(degrad_params))] Blur ratio
Spectrum blur ratio
Tail to signal ratio
PC1
Excess attenuation
SPL
Tail to noise ratio
Spectrum correlation
Envelope correlation
Cross correlation
Signal to noise ratio
Signal to noise ratio
## [1] "blur.ratio"
## [1] "spectrum.blur.ratio"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "excess.attenuation"
## [1] "SPL"
## [1] "tail.to.noise.ratio"
## [1] "spectrum.correlation"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "blur.ratio"
## [1] "spectrum.blur.ratio"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "excess.attenuation"
## [1] "SPL"
## [1] "tail.to.noise.ratio"
## [1] "spectrum.correlation"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "blur.ratio"
## [1] "spectrum.blur.ratio"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "excess.attenuation"
## [1] "SPL"
## [1] "tail.to.noise.ratio"
## [1] "spectrum.correlation"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "blur.ratio"
## [1] "spectrum.blur.ratio"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "excess.attenuation"
## [1] "SPL"
## [1] "tail.to.noise.ratio"
## [1] "spectrum.correlation"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "blur.ratio"
## [1] "spectrum.blur.ratio"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "excess.attenuation"
## [1] "SPL"
## [1] "tail.to.noise.ratio"
## [1] "spectrum.correlation"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
## [1] "blur.ratio"
## [1] "spectrum.blur.ratio"
## [1] "tail.to.signal.ratio"
## [1] "PC1"
## [1] "excess.attenuation"
## [1] "SPL"
## [1] "tail.to.noise.ratio"
## [1] "spectrum.correlation"
## [1] "envelope.correlation"
## [1] "cross.correlation"
## [1] "signal.to.noise.ratio"
## [1] "signal.to.noise.ratio"
Session information
## R version 4.4.1 (2024-06-14)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 22.04.4 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=es_CR.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=es_CR.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=es_CR.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=es_CR.UTF-8 LC_IDENTIFICATION=C
##
## time zone: America/Costa_Rica
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] cowplot_1.1.3 ggdist_3.3.2 brms_2.21.0 Rcpp_1.0.13
## [5] corrplot_0.92 viridis_0.6.5 viridisLite_0.4.2 tidyr_1.3.1
## [9] ggplot2_3.5.1 baRulho_2.1.2 ohun_1.0.2 warbleR_1.1.32
## [13] NatureSounds_1.0.4 seewave_2.2.3 tuneR_1.4.7 Rraven_1.0.13
## [17] rprojroot_2.0.4 formatR_1.14 knitr_1.48 kableExtra_1.4.0
## [21] remotes_2.5.0
##
## loaded via a namespace (and not attached):
## [1] DBI_1.2.3 bitops_1.0-7 pbapply_1.7-2
## [4] gridExtra_2.3 inline_0.3.19 sandwich_3.1-0
## [7] testthat_3.2.1.1 rlang_1.1.4 magrittr_2.0.3
## [10] multcomp_1.4-25 matrixStats_1.3.0 e1071_1.7-14
## [13] compiler_4.4.1 loo_2.8.0 png_0.1-8
## [16] systemfonts_1.1.0 vctrs_0.6.5 Sim.DiffProc_4.9
## [19] stringr_1.5.1 pkgconfig_2.0.3 fastmap_1.2.0
## [22] backports_1.5.0 labeling_0.4.3 utf8_1.2.4
## [25] rmarkdown_2.27 purrr_1.0.2 xfun_0.46
## [28] cachem_1.1.0 jsonlite_1.8.8 highr_0.11
## [31] Deriv_4.1.3 parallel_4.4.1 R6_2.5.1
## [34] StanHeaders_2.32.10 bslib_0.8.0 stringi_1.8.4
## [37] estimability_1.5.1 brio_1.1.5 jquerylib_0.1.4
## [40] assertthat_0.2.1 rstan_2.32.6 klippy_0.0.0.9500
## [43] zoo_1.8-12 bayesplot_1.11.1 splines_4.4.1
## [46] Matrix_1.7-0 igraph_2.0.3 tidyselect_1.2.1
## [49] rstudioapi_0.16.0 abind_1.4-5 yaml_2.3.10
## [52] codetools_0.2-20 dtw_1.23-1 curl_5.2.1
## [55] pkgbuild_1.4.4 lattice_0.22-6 tibble_3.2.1
## [58] withr_3.0.1 bridgesampling_1.1-2 posterior_1.6.0
## [61] coda_0.19-4.1 evaluate_0.24.0 signal_1.8-1
## [64] survival_3.7-0 sf_1.0-16 units_0.8-5
## [67] proxy_0.4-27 RcppParallel_5.1.8 xml2_1.3.6
## [70] pillar_1.9.0 tensorA_0.36.2.1 KernSmooth_2.23-24
## [73] checkmate_2.3.2 stats4_4.4.1 distributional_0.4.0
## [76] generics_0.1.3 RCurl_1.98-1.16 rstantools_2.4.0
## [79] munsell_0.5.1 scales_1.3.0 xtable_1.8-4
## [82] class_7.3-22 glue_1.7.0 emmeans_1.10.3
## [85] tools_4.4.1 mvtnorm_1.2-5 grid_4.4.1
## [88] QuickJSR_1.3.1 colorspace_2.1-1 nlme_3.1-165
## [91] cli_3.6.3 fansi_1.0.6 svglite_2.1.3
## [94] Brobdingnag_1.2-9 dplyr_1.1.4 V8_4.4.2
## [97] gtable_0.3.5 fftw_1.0-8 sass_0.4.9
## [100] digest_0.6.36 classInt_0.4-10 TH.data_1.1-2
## [103] farver_2.1.2 rjson_0.2.21 htmltools_0.5.8.1
## [106] lifecycle_1.0.4 MASS_7.3-61